#pragma once

template<bool condition, typename first, typename second>
struct if_tool
{
};

template<typename first, typename second>
struct if_tool<true, first, second>
{
   typedef first result_;
};

template<typename first, typename second>
struct if_tool<false, first, second>
{
   typedef second result_;
};